Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Networked storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data, and others. A networked storage system typically includes at least one computing device executing a storage operating system for storing and retrieving data on behalf of one or more client computing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices.
Networked storage systems are used extensively in NAS, SAN, cloud based, and virtual storage environments. The infrastructure uses various physical and virtual components, for example, servers, switches, host bus adapters, network interface cards, storage devices, volumes, virtual machines, and others. The performance and usage of these resources impacts the overall performance providing storage services to clients.
Prior to the described innovative technology below, computing servers typically connect to networked storage using for example, the Ethernet protocol. In some environments, numerous client systems (host computing systems, virtual machines, and others) access storage via a volume, a virtual logical object described below in detail. A storage array is typically blind to the client systems that impact the performance of a volume. When a volume is over-impacted, it is difficult for a storage administrator to identify the source of the performance loads.
One conventional solution to the foregoing challenge is to install agents at client machines to collect information regarding traffic generated by each client. This, however, is an inefficient solution, especially in an environment that may have thousands of client machines. Maintaining compatibility of software agents with various operating systems on deployed client machines and managing the upgrade of those agents across the client machines is complicated and, hence undesirable. Continuous efforts are being made to develop computing technology that can be deployed at data centers and networked storage environments to efficiently manage and monitor infrastructure resources.